Recommending optimal golf club grip using dynamic indicators on a smart grip

ABSTRACT

Systems and methods for determining an optimal grip position on a golf club are disclosed. A method includes: obtaining, by a computer device, ball lie data; determining, by the computer device, an optimal grip position for a golf club based on the ball lie data and historical shot data of a user; and transmitting, by the computer device, data defining the optimal grip position to a smart grip attached to a shaft of the golf club.

BACKGROUND

The present invention generally relates to golf clubs and, more particularly, to a system and method for recommending an optimal golf club grip for an individual using dynamic indicators on a smart grip.

Golfers of all skill levels have experienced times when a shot goes astray. Some lesser experienced golfers find this is the case a majority of the time. There are hundreds of elements that factor into the trajectory and distance of a shot and a significant part of those are found in the grip position of the club, i.e., the position of the user's hands holding the golf club during the swing. Golfers frequently find that there are too many dynamics and “things to remember” to affect a shot the way they want it. The way an individual holds the golf club in their hands, in particular the grip position of their hands on the golf club grip, is a significant factor that affects the flight of the ball for any given golf swing.

SUMMARY

In a first aspect of the invention, there is a method that includes: obtaining, by a computer device, ball lie data; determining, by the computer device, an optimal grip position for a golf club based on the ball lie data and historical shot data of a user; and transmitting, by the computer device, data defining the optimal grip position to a smart grip attached to a shaft of the golf club.

In another aspect of the invention, there is a computer program product that includes a computer readable storage medium having program instructions embodied therewith. The program instructions are executable by a computing device to cause the computing device to perform the following steps for a plurality of golf shots by a user: determine ball lie data of a respective one of the plurality of golf shots; determine a golf club used for the respective one of the plurality of golf shots; determine a grip position of a user's hands on a grip of the golf club during the respective one of the plurality of golf shots; determine a result of the respective one of the plurality of golf shots; and save an entry in a database for the respective one of the plurality of golf shots, wherein the entry contains data defining the ball lie data, the golf club, the grip position, and the result.

In another aspect of the invention, there is a smart grip system that includes: a grip material structured and arranged to fit on an end of a shaft of a golf club; a processor embedded in the grip material; an array of visual indicators connected to the grip material and operatively connected to the processor; and an array of pressure sensors connected to the grip material and operatively connected to the processor; wherein the processor is configured to selectively activate a subset of the array of visual indicators to visually indicate a suggested grip position for a user's hands on the grip material.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is described in the detailed description which follows, in reference to the noted plurality of drawings by way of non-limiting examples of exemplary embodiments of the present invention.

FIG. 1 depicts a computing infrastructure according to an embodiment of the present invention.

FIG. 2 shows a block diagram of an exemplary system in accordance with aspects of the invention.

FIGS. 3 and 4 show exemplary grip indications in accordance with aspects of the invention.

FIGS. 5-7 show flowcharts of methods in accordance with aspects of the invention.

DETAILED DESCRIPTION

The present invention generally relates to golf clubs and, more particularly, to a system and method for recommending an optimal golf club grip for an individual using dynamic indicators on a smart grip. According to aspects of the invention, a smart grip for a golf club includes numerous visual indicators (e.g., LED lights) below the grip material which can be programmatically lit to indicate an ideal hand/grip position for a particular type of golf swing for an individual golfer. In embodiments, the smart grip communicates with a computing device of the individual to record shot metrics. The computing device uses a database of the individual's historical shooting metrics to determine an optimal grip position for that individual in that type of approach, and then sends a signal to the indicators of the smart grip to light up and visually indicate the suggested optimal hand grip position. The database may also include historical shooting metrics for other users, which would enable the user to select another user's data (e.g., a golf instructor or professional) to have the smart grip indicate how the other user grips the club to accomplish a specific shot.

In embodiments the computing device is a mobile computing device such as a smartphone or tablet computer. The system utilizes wireless communication between the smartphone and the smart grip. An application (e.g., an app) on the smartphone records the individual's current distance to the green, lie, and the approach angle. The application has access to a database of the individual's historic shooting metrics (e.g., distance, straight, slice, hook, loft) for respective combinations of swing parameters (e.g., club, grip position, lie). The application uses the database to determine an optimal club and grip position on the club to provide the highest probability (based on this individual's historic shooting results) of achieving a shot that satisfies the current distance to the green, lie, and the approach angle. The application then causes the smartphone to send a signal to the selected club that causes a subset of the indicators in the smart grip of the selected club to light up to indicate the determined grip position. The system may be operated in a learning mode to populate the database of the individual's historic shooting metrics. The system may also accept user input of an intent for a particular shot (e.g., high loft) with a particular club (e.g., seven iron), and use the indicated intent in determining the optimal club and grip position on the club.

In additional embodiments, the system may be configured to compare the individual's current ball lie data (e.g., distance to the green, lie, and approach angle) to historical shooting metrics of other golfers who had the same (or substantially similar) ball lie data. The historical shooting metrics of other users may be used to determine an optimum grip for the current user's ball lie data by analyzing grips used by other users for historical shots for the same ball lie data, and assigning higher weight to grips that resulted in more successful historic shots and lower weight to grips that resulted in less successful historic shots. In embodiments, the historical shooting metrics of other users may be filtered by club brand and/or model, i.e., to match the club brand and/or model used by the current user.

The present invention may be a system, a method, and/or a computer program product at any possible technical detail level of integration. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.

Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.

Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, configuration data for integrated circuitry, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++, or the like, and procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.

These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.

The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.

The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the Figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.

Referring now to FIG. 1, a schematic of an example of a computing infrastructure is shown. Computing infrastructure 10 is only one example of a suitable computing infrastructure and is not intended to suggest any limitation as to the scope of use or functionality of embodiments of the invention described herein. Regardless, computing infrastructure 10 is capable of being implemented and/or performing any of the functionality set forth hereinabove.

In computing infrastructure 10 there is a computer system (or server) 12, which is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with computer system 12 include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the above systems or devices, and the like.

Computer system 12 may be described in the general context of computer system executable instructions, such as program modules, being executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, and so on that perform particular tasks or implement particular abstract data types. Computer system 12 may be practiced in distributed cloud computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media including memory storage devices.

As shown in FIG. 1, computer system 12 in computing infrastructure 10 is shown in the form of a general-purpose computing device. The components of computer system 12 may include, but are not limited to, one or more processors or processing units (e.g., CPU) 16, a system memory 28, and a bus 18 that couples various system components including system memory 28 to processor 16.

Bus 18 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnects (PCI) bus.

Computer system 12 typically includes a variety of computer system readable media. Such media may be any available media that is accessible by computer system 12, and it includes both volatile and non-volatile media, removable and non-removable media.

System memory 28 can include computer system readable media in the form of volatile memory, such as random access memory (RAM) 30 and/or cache memory 32. Computer system 12 may further include other removable/non-removable, volatile/non-volatile computer system storage media. By way of example only, storage system 34 can be provided for reading from and writing to a nonremovable, non-volatile magnetic media (not shown and typically called a “hard drive”). Although not shown, a magnetic disk drive for reading from and writing to a removable, non-volatile magnetic disk (e.g., a “floppy disk”), and an optical disk drive for reading from or writing to a removable, non-volatile optical disk such as a CD-ROM, DVD-ROM or other optical media can be provided. In such instances, each can be connected to bus 18 by one or more data media interfaces. As will be further depicted and described below, memory 28 may include at least one program product having a set (e.g., at least one) of program modules that are configured to carry out the functions of embodiments of the invention.

Program/utility 40, having a set (at least one) of program modules 42, may be stored in memory 28 by way of example, and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment. Program modules 42 generally carry out the functions and/or methodologies of embodiments of the invention as described herein.

Computer system 12 may also communicate with one or more external devices 14 such as a keyboard, a pointing device, a display 24, etc.; one or more devices that enable a user to interact with computer system 12; and/or any devices (e.g., network card, modem, etc.) that enable computer system 12 to communicate with one or more other computing devices. Such communication can occur via Input/Output (I/O) interfaces 22. Still yet, computer system 12 can communicate with one or more networks such as a local area network (LAN), a general wide area network (WAN), and/or a public network (e.g., the Internet) via network adapter 20. As depicted, network adapter 20 communicates with the other components of computer system 12 via bus 18. It should be understood that although not shown, other hardware and/or software components could be used in conjunction with computer system 12. Examples, include, but are not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.

FIG. 2 shows a block diagram of an exemplary system in accordance with aspects of the invention. The system includes a smart grip 70 that is configured to be physically connected to a golf club 72 taking the place of a conventional grip on the golf club 72. In implementations it is envisioned that a respective smart grip 70 will be provided on each non-putter style golf club in a golfer's bag, e.g., on all the wood and irons. In embodiments, the smart grip 70 includes a grip material 74, a processor 76 (e.g., a computer microprocessor), a power source 78 (e.g., a battery), a radio communication antenna 80, an array of pressure sensors 82 (indicated by hexagons in FIG. 2), and an array of indicators 84 (indicated by triangles in FIG. 2). The smart grip 70 may also include other sensors such as an accelerometer 86.

The grip material 74 may be any conventional or later developed golf club grip material such as natural rubber or synthetic rubber. The grip material 74 may have a hollow cylindrical shape that is configured to fit snugly on an end of a shaft of a golf club. In embodiments, the indicators 84 are on, or embedded in, the grip material 74 at a plurality of defined locations around the grip. The indicators 84 may comprise light emitting diodes (LEDs) or other visual indicators that can be selectively activated and deactivated (e.g., turned on and off). In one example, the indicators 84 are sandwiched between two layers of the grip material 74 with the outer layer of the grip material being sufficiently thin such that an indicator 84 that is activated (e.g., emitting light) can be seen through the outer layer of the grip material. A location of each indicator 84 may be defined in a coordinate system relative to the smart grip 70 and provided to the processor 76.

In embodiments, each of the indicators 84 is operatively connected to the processor 76 and powered by the power source 78. The processor 76 controls (e.g., selectively turns on and off) each individual indicator 84 independent of the other indicators. The processor 76 is configured to selectively activate (e.g., turn on) a subset of the indicators 84 to illuminate positions on the smart grip 70 where the user is suggested to place their fingers and thumbs. The processor 76 can activate different subsets of the indicators 84 to indicate different grip positions. In this manner, the smart grip 70 can dynamically change different indicated grip positions on a same golf club. Moreover, plural smart grips 70 may be used on plural golf clubs (e.g., one smart grip 70 per golf club) to create a system that can dynamically indicate an optimal grip position on a selected club for any given golf shot.

FIGS. 3 and 4 depict implementations of a smart grip 70 dynamically indicating different grip positions on a golf club. FIG. 3 shows the smart grip 70 with a first subset of the indictors 84′ activated to indicate a first grip position on the golf club. FIG. 4 shows the same smart grip 70 with a second subset of indicators 84″ activated to indicate a second grip position on the same golf club, the first grip position being different than the second grip position. In embodiments, the activated indicators 84 visually indicate locations where the user should place their finger tips and thumb on the surface of the smart grip 70. Each indicator 84 may be a dual color LED such that a first color light can be emitted by indicators 84 for finger locations, and a second color light (different from the first color) can be emitted by an indicator 84 for a thumb location.

Referring back to FIG. 2, according to aspects of the invention the smart grip 70 also includes a plurality of pressure sensors 82 on, or embedded in, the grip material 74 at a plurality of defined locations around the grip. The pressure sensors 82 may piezoelectric pressure sensors, for example. Each pressure sensor 82 is operatively connected to the processor 76 and powered by the power source 78. The array of pressure sensors 82 is configured to detect the locations of the user's hands on the smart grip 70 when the user grips the club, e.g., during a golf swing. A location of each pressure sensor 82 may be defined in a coordinate system relative to the smart grip 70 and provided to the processor 76.

According to aspects of the invention, the smart grip 70 communicates via radio communication antenna 80 with a user device 100, which may be any suitable mobile computer device such as a smartphone or tablet computer. The user device 100 may comprise one or more elements of the computer system 12 as shown in FIG. 1. For example, the user device 100 may comprise a CPU 16, a memory 28, and a display 24. The memory 28 may store applications including a grip app 106 and a map app 108 that are executed by the processing unit 16. The grip app 106 and map app 108 may be similar to program module 42 of FIG. 1. The memory 28 may also store a database 110 of a user's historical shooting metrics. The display 24 may comprise a touch screen display that outputs an electronic visual display and that receives user input via stylus and/or finger touch. The user device 100 may also include a radio communication antenna 112 and be configured for wireless communication via at least one of cellular, WiFi, Bluetooth, and near field communication (NFC). The user device 100 may also include a location determining module 114, such as a GPS (global positioning system) receiver.

In accordance with aspects of the invention, the grip app 106 determines an optimal grip position on a golf club for the user, and transmits data to the smart grip 70 that causes the processor 76 of the smart grip 70 to activate a subset of the indictors 84 that correspond to the determined optimal grip position (e.g., as shown in FIGS. 3 and 4). In embodiments, the grip app 106 determines the optimal grip position using data that defines the golf ball lie and data of the user's historic shooting metrics.

The data that defines the golf ball lie (also called ball lie data) can include one or more of: ball location, distance from the ball location to the green, ball lie angle (e.g., flat lie, uphill lie, downhill lie, side hill lie), and ball lie surface (e.g., fairway, rough, sand). In embodiments, the ball lie data is automatically obtained via the user device 100. For example, the map app 108 may store map data that defines a map of the golf course on which the user is currently playing golf. The map data may define terrain (e.g., flat lie, uphill lie, downhill lie, side hill lie) and surface (e.g., fairway, rough, sand) for locations on the golf course. The map data may also define a location of the green for each hole of the golf course. The location determining module 114 of the user device 100 may be used to determine a GPS location of the golf ball lie. Using this GPS location of the golf ball lie, the map app 108 may use the map data to automatically determine a distance from the ball location to the green, ball lie angle (e.g., flat lie, uphill lie, downhill lie, side hill lie), and ball lie surface (e.g., fairway, rough, sand). The map app 108 may pass the determined ball lie data to the grip app 106 for use in determining the optimal grip position.

In a manual embodiment, the ball lie data may be determined manually via user input. For example, the grip app 106 may display a user interface on the display of the user device and prompt the user to manually input data that defines distance from the ball location to the green, ball lie angle (e.g., flat lie, uphill lie, downhill lie, side hill lie), and ball lie surface (e.g., fairway, rough, sand). For example, the user may tap a location on a map displayed in a user interface of the user device 100 to indicate the desired location of the golf ball on the golf course, and this location may be used as part of the ball lie data. Moreover, the user may provide input to the user interface to indicate the ball lie angle and the ball lie surface.

In a hybrid embodiment, the ball lie data may be determined automatically in the manner already described herein and then confirmed or adjusted manually via user input. For example, upon receiving the automatically determined ball lie data from the map app 108, the grip app 106 may display the determined ball lie data in a user interface on a display of the user device 100. The user interface may be configured to permit the user to provide an input to confirm (e.g., accept) the determined ball lie data or to change one or more parameters of the ball lie data. For example, the automatically determined ball lie data may indicate that the ball is on a side hill lie, and this may be displayed on the user device 100. The user may determine, however, that the ball is actually on a flat lie, and provide input to the user device 100 to change the ball lie data from side hill lie to flat lie. The user may change the data for each of the ball location and the lie surface in a similar manner. When the user confirms the ball lie data including any changes, the grip app 106 then uses the user confirmed data as the ball lie data.

In embodiments, upon determining the ball lie data, the grip app 106 compares the ball lie data to the user's historical shooting metrics, which may be stored in a database on the user device 100. The database may categorize the user's own historic (past) golf shots based upon ball lie data, club data, grip position data, and resultant shot metrics. For example, the database may contain plural entries, with each respective entry corresponding to a respective historic (past) golf shot performed by this user. A respective database entry may include ball lie data for a historic golf shot, including ball lie angle (e.g., flat lie, uphill lie, downhill lie, side hill lie), and ball lie surface (e.g., fairway, rough, sand). The same entry may also include club data for the same historic golf shot, the club data indicating which club was used for the golf shot. The same entry may also include grip position data for the same historic golf shot, the grip position data indicating the locations of the user's hands on the smart grip, determined in a manner described herein. The same entry may also include resultant shot metrics data for the same historic golf shot, the resultant shot metrics data defining how far the ball traveled (shot distance) for this shot. The resultant shot metrics data may also define whether the shot was one of straight, slice, and hook. The resultant shot metrics data may also define an amount of loft for the shot, e.g., low loft, medium loft, high loft. The resultant shot metrics data may also define a strength of swing, e.g., half swing or full swing. The resultant shot metrics data may also define an amount of divot for the shot, e.g., no divot, small divot, large divot.

According to aspects of the invention, the grip app 106 is programmed to determine an optimal club and an optimal grip position based on the ball lie data and the user's historical shooting metrics. In one exemplary embodiment, the grip app 106 identifies a subset of the database entries that all have a same ball lie angle and ball lie surface as the current ball lie data. The grip app 106 may then categorize the subset of entries into club sets according to which club was used for each historic shot, e.g., based on the club data for each entry. For example, when the current ball lie data is for a flat lie in the fairway, the grip app 106 may identify from the database all the historic shots in which the user swung a three iron from a flat lie in the fairway, all the historic shots in which the user swung a four iron from a flat lie in the fairway, all the historic shots for which the user swung a five iron from a flat lie in the fairway, and so on until all of the historic shots matching the current lie and surface are categorized according to club.

After categorizing the historic shots into club sets according to the club used for each shot, the grip app 106 may then categorize each club set into grip sets according to grip position that was used for each historic shot, e.g., based on the grip position data for each entry. For example, for the historic shots in which the user swung a three iron from a flat lie in the fairway, the grip app 106 may categorize these shots according to a first grip position, a second grip position, and a third grip position. Similarly, for the historic shots in which the user swung a four iron from a flat lie in the fairway, the grip app 106 may categorize these shots according to a fourth grip position and a fifth grip position, and so on until all the club sets have been categorized according to grip position data.

After categorizing the historic shots by club and then grip position, the grip app 106 may determine an average shot result for each grip category for each club, based on the resultant shot metrics data from the database. For example, the grip app 106 may determine an average shot distance, average shot direction (e.g., straight, slice, hook), and an average shot loft (low, medium, high) for the group of historic shots in which the user swung a three iron from a flat lie in the fairway using the first grip position. Similarly, the grip app 106 may determine an average shot distance, average shot direction, and an average shot loft for the group of historic shots in which the user swung a three iron from a flat lie in the fairway using the second grip position. Similarly, the grip app 106 may determine an average shot distance, average shot direction, and an average shot loft for the group of historic shots in which the user swung a three iron from a flat lie in the fairway using the third grip position. Similarly, the grip app 106 may determine an average shot distance, average shot direction, and an average shot loft for the group of historic shots in which the user swung a four iron from a flat lie in the fairway using the fourth grip position. Similarly, the grip app 106 may determine an average shot distance, average shot direction, and an average shot loft for the group of historic shots in which the user swung a four iron from a flat lie in the fairway using the fifth grip position. The grip app 106 can repeat the process until an average shot distance, average shot direction, and an average shot loft are determined for each grip set for each club set.

Still referring to this exemplary embodiment, the grip app 106 then determines an optimal club and grip position for the current ball lie data based on the determined average shot distance, average shot direction, and average shot loft are for each grip set for each club set for all historic shots having the same ball lie angle and ball lie surface as the current ball lie data. For example, the grip app 106 may be programmed by default to filter out club and grip combinations that have a determined average shot direction of hook or slice. Then, from the remaining club and grip combinations that have a determined average shot direction of straight, the grip app 106 may be programmed to determine the club and grip combination that has a determined average shot distance that most closely matches the distance to green of the ball lie data for the current shot. For example, the grip app 106 may determine that for the ball lie conditions of the current shot, using the four iron with the fifth grip position is the optimal combination of club and grip.

In embodiments, the database (e.g., database 110) may also include historical shooting metrics for other users different than the current user. The historical shooting metrics for other users may be categorized in the same manner as the historical shooting metrics. For example, the historical shooting metrics for other users may include ball lie data, grip position, and resultant shot metrics for shots that have been made by other users. In this manner, the grip app 106 may determine an optimal club and grip position for the current ball lie data using the other users' historical shooting metrics. When historical shooting metrics of other users is utilized in this manner, the grip app 106 may optionally be configured to only use historical shooting metrics of other users that used a same brand and/or model of golf club as the current user. An exemplary implementation of using historical shooting metrics of other users is for the grip app 106 to provide a suggested club and grip to the current user, e.g., upon request of the current user, where the suggested club and grip is determined based on how other users have successfully handled the ball lie data faced by the current user.

In embodiments, upon determining the optimal club and grip combination for the ball lie data for the current shot, the grip app 106 transmits data to the smart grip 70 of the selected club. The transmitted data causes the processor 76 of the smart grip 70 to activate a subset of the indicators 84 to light up and identify the determined optimal grip position. Continuing the example in which the four iron with the fifth grip position is the determined optimal combination of club and grip, the grip app 106 would cause the user device 100 to transmit data to the smart grip 70 on the four iron, and this data would cause the processor 76 in the smart grip 70 on the four iron to activate a subset of the indicators 84 to light up in positions that correspond to the fifth grip position. In this manner, implementations of the invention may be used to provide a suggested optimal golf club and grip position for a current ball lie, where the suggested optimal golf club and grip position are personalized to the user based on the user's own past shot history.

In accordance with additional aspects of the invention, the grip app 106 may determine an optimal grip for a user-selected club based on an intent that is input by the user. For example, the user may select their club (without a recommendation from the grip app 106) and input an intent for the current shot via a user interface on the user device 100. The intent may alternatively be entered via an input mechanism on the smart grip 70, such as a series of buttons or touch sensitive inputs on the smart grip that can be used to indicate one of: hook, slice, low loft, and high loft. The intent may be, for example, high loft (e.g., to shot over a tree), low loft (e.g., to shoot under tree), slice (e.g., to curve around an obstacle), hook (e.g., to curve around an obstacle). The grip app 106 may use the intent in the determination of the optimal grip for this user-selected club, along with the ball lie data and the historic shot data as described herein. For example, when the user selects their four iron and provides intent for a slice, the grip app 106 will analyze the historic shot metrics based on the current ball lie data to determine a hand grip for the four iron that produces a slice for the current ball lie and distance to green.

According to aspects of the invention, the database is populated with data from the user's historic (past) golf shots. In embodiments the grip app 106 is configured with a learning mode for capturing the user's historic shot data. When the user performs a shot in the learning mode, the grip app 106 first obtains the ball starting location (e.g., GPS location), ball lie angle (e.g., flat lie, uphill lie, downhill lie, side hill lie), and ball lie surface (e.g., fairway, rough, sand) in one of the manners described herein (e.g., automated, manual, hybrid). This data is saved in a database entry for this golf shot.

The grip app 106 determines the golf club being used for the current shot. In an automated embodiment, the grip app 106 uses data from the accelerometers of all the smart grips 70 to determine which club is moving and which clubs are stationary, and determines that the moving club is the club being used for the current shot. In a manual embodiment, the user may provide input to a user interface of the user device 100 to indicate which club is being used for the current shot. This data is saved in the database entry for this golf shot.

The grip app 106 also determines a grip position of the user's hands on the club for the current shot. In embodiments, the processor 76 in the smart grip 70 of the club being used receives data from the pressure sensors 82 in the smart grip 70 and transmits data to the user device 100. The pressure sensor data (and the defined location of each respective pressure sensor 82) is used by the grip app 106 to determine a grip position of the user's hands on the smart grip 70. This data is saved in the database entry for this golf shot.

Still referring to the learning mode, when the user swings the club for the current golf shot, the data from the accelerometer 86 may be transmitted to the user device 100 and used by the grip app 106 to determine a strength of swing (e.g., half swing or full swing) and an amount of divot for the shot (e.g., no divot, small divot, large divot). Alternatively, the user may provide input, via a user interface on the user device 100, that defines the strength of swing and amount of divot. This data is saved in the database entry for this golf shot.

Still referring to the learning mode, the grip app 106 determines a distance, direction (e.g., straight, slice, hook), and loft (e.g., low, medium, high) for the current shot. These may be determined in automated or manual fashion. In a manual embodiment, the user inputs data via a user interface on the user device 100, the user input defining the distance, direction, and loft for the current shot. In an automated embodiment, the distance may be determined from the GPS starting location and GPS ending location of the ball for the current shot. The GPS starting location and the GPS ending location may be determined by the user device 100 since the user device 100 is with the user at the starting location and is also is with the user when the user travels to their ball after the shot, i.e., at the ending location. The golf ball may also be equipped with a GPS sensor and an accelerometer that communicate with the user device 100 to provide data that can be used to determine distance, direction, and loft. Starting and ending location can also be input by the user via the map app 108, e.g., by the user touching a display of a map of the golf course to indicate the locations. The distance, direction, and loft data is saved in the database entry for this golf shot.

In embodiments, when there is an insufficient amount of data in the database to provide a recommendation for an optimal club and grip, the grip app 106 may determine an optimal club and grip using data associated with the user. For example, the grip app 106 may use the user's height and length of the user's golf club to calculate a grip position for the club.

FIGS. 5-7 depict exemplary methods in accordance with aspects of the invention. The steps of the methods may be performed in the system of FIG. 2 and are described with reference to the elements and steps described with respect to FIG. 2.

FIG. 5 shows a method of capturing data in the learning mode in accordance with aspects of the invention. At step 501, the user selects a club. At step 502, the system (e.g., the grip app 106 running on the user device 100) determines the club selected by the user. Step 502 may be performed in an automated or manual manner, e.g., as described with respect to FIG. 2. For example, the user may input data to the user device 100 indicating which club is being used. Alternatively, the grip app 106 may leverage data from the accelerometer 86 in the smart grip 70 to determine which club is moving, i.e., being used.

At step 503, the system determines the ball lie data, which may include at least one of: ball location, ball lie angle, and ball lie surface. This data may be determined automatically by the system or via user input, as described with respect to FIG. 2.

At step 504, the system determines the user's grip location on the smart grip 70 of the club being swing during the golf shot. As described with respect to FIG. 2, the processor 76 of the smart grip 70 of the club being swung receives data from the array of pressure sensors 82 in the smart grip 70 and transmits this data to the grip app 106 on the user device 100. The grip app 106 can use the data from each of the pressure sensors 82 and the pre-defined location of each of the pressure sensors 82 in the smart grip 70 to determine a grip position of the user during the swing of the golf club.

At step 505, the system determines results of the golf shot. The results may include at least one of distance of ball travel, direction of ball travel (e.g., straight, slice, hook), and loft of ball travel (e.g., low, medium, high) for the golf shot. The results may also include one or more of swing speed and amount of divot for the golf shot. This data may be determined in the manner described with respect to FIG. 2, e.g., in a manual or automated manner.

At step 506, the system stores the data for this swing (e.g., the data obtained at steps 502-505) as an entry in the database 110. In this manner, the database is populated with an entry for this swing, and this entry may be used in a subsequent determination of an optimal club and grip for a golf shot for this user.

The steps of the method of FIG. 5 may be repeated many times at a practice facility (e.g., a driving range) to accumulate a large amount of historic shot data in the database. The steps of the method of FIG. 5 may also be used during gameplay on a golf course. For example, every shot taken by the user on the golf course can be saved as an entry in the database.

FIG. 6 shows a method of providing an optimal grip recommendation for a user-selected club and user provided intent. At step 601, the user selects a club. At step 602, the system (e.g., the grip app 106 running on the user device) determines the club selected by the user. Step 602 may be performed in the same manner as step 502, e.g., as described with respect to FIG. 2.

At step 603, the user provides input of an intent of the current shot. Step 603 may be performed in the manner described with respect to FIG. 2. For example, the user may provide the intent input via a user interface of the user device 100 or via an input mechanism integrated into the smart grip 70. The intent may be, for example, one of: slice, hook, low loft, and high loft.

At step 604, the system determines the ball lie data, e.g., ball location, distance to the green, ball lie angle, and ball lie surface. This data may be determined in the manner described with respect to FIG. 2, e.g., automatically by the system or manually via user input.

At step 605, the system determines an optimal grip position for the user-selected club. Step 605 may be performed in the manner described with respect to FIG. 2, e.g., based on the ball lie data, the user-selected club, the user intent, and the database of the user's historic shot metrics. Step 605 includes determining a grip position for the user-selected club and current ball lie that, based on historical shot results for this user, will achieve the desired intent.

At step 606, the user device 100 transmits data that defines the determined optimal grip position to the smart grip 70 of the user-selected club. This may be performed by wireless communication as described herein.

At step 607, the processor 76 of the smart grip 70 selectively activates a subset of the indicators 84 based on the data that defines the determined optimal grip position (from step 606). Step 607 may be performed in the manner described with respect to FIG. 2 and as depicted in the examples of FIGS. 3 and 4.

At step 608, the processor 76 receives data from the pressure sensors 82 of the smart grip 70 and determines whether the user has placed their hands in locations that correspond to the determined optimal grip position. In the event that the user has not placed their hands in locations that correspond to the determined optimal grip position, then the system generates a warning, such as a vibration or audible tone generated by the user device 100 and/or activating other ones of the indicators 84 of the smart grip, e.g., in a blinking or all-on manner. Following the warning, the process returns to step 607 where the smart grip 70 again activates a subset of the indicators 84 based on the data that defines the determined optimal grip position. In the event the user has placed their hands in locations that correspond to the determined optimal grip position, then the system does not generate a warning and instead waits for the user to swing.

At step 609 the user swings the golf club to perform the golf shot. At step 610, the system determines the user's actual grip position during the golf swing, e.g., using the pressure sensors 82 as described herein (e.g., similar to step 504).

At step 611, the system determines results of the golf shot. The results may include a distance, direction (e.g., straight, slice, hook), and loft (e.g., low, medium, high) for the golf shot. The results may also include one or more of swing speed and amount of divot for the golf shot. Step 611 may be performed in a similar manner as step 505.

At step 612, the system stores the data for this swing (e.g., the data obtained at steps 602-604, 610, and 611) in the database 110. Step 612 may be performed in a similar manner as step 506.

FIG. 7 shows a method of providing an optimal club and grip recommendation for a golf shot for a user. At step 701, the system determines the ball lie data, e.g., ball location, distance to the green, ball lie angle, and ball lie surface. This data may be determined automatically by the system or manually via user input, as described with respect to FIG. 2.

At step 702, the system determines an optimal club and grip position for the golf shot. Step 605 may be performed in the manner described with respect to FIG. 2, e.g., by comparing the ball lie data to the database of the user's historic shot metrics. The comparing is used to determine a club and grip position for the current ball lie that, based on historical shot results for this user, will achieve a straight shot that travels the distance to the green.

At step 703, the user device 100 transmits data that defines the determined grip position to the smart grip 70 of the determined club. This may be performed by wireless communication as described herein.

At step 704, the processor 76 of the smart grip 70 of the determined club selectively activates a subset of the indicators 84 based on the data that defines the determined optimal grip position (from step 702). Step 704 may be performed in the manner described with respect to FIG. 2 and as depicted in the examples of FIGS. 3 and 4.

At step 705, the processor 76 receives data from the pressure sensors 82 of the smart grip 70 and determines whether the user has placed their hands in locations that correspond to the determined optimal grip position. In the event that the user has not placed their hands in locations that correspond to the determined optimal grip position, then the system generates a warning, such as a vibration or audible tone generated by the user device 100 and/or activating other ones of the indicators 84 of the smart grip, e.g., in a blinking or all-on manner. Following the warning, the process returns to step 704 where the smart grip 70 again activates a subset of the indicators 84 based on the data that defines the determined optimal grip position. In the event the user has placed their hands in locations that correspond to the determined optimal grip position, then the system does not generate a warning and instead waits for the user to swing.

At step 706 the user swings the golf club to perform the golf shot. At step 707, the system determines the user's actual grip position during the golf swing, e.g., using the pressure sensors 82 as described herein (e.g., similar to step 504).

At step 708, the system determines results of the golf shot. The results may include a distance, direction (e.g., straight, slice, hook), and loft (e.g., low, medium, high) for the golf shot. The results may also include one or more of swing speed and amount of divot for the golf shot. Step 708 may be performed in a similar manner as step 505.

At step 709, the system stores the data for this swing (e.g., the data obtained at steps 701, 707, and 708) in the database 110. Step 709 may be performed in a similar manner as step 506.

In embodiments, a service provider, such as a Solution Integrator, could offer to perform the processes described herein. In this case, the service provider can create, maintain, deploy, support, etc., the computer infrastructure that performs the process steps of the invention for one or more customers. These customers may be, for example, any business that uses technology. In return, the service provider can receive payment from the customer(s) under a subscription and/or fee agreement and/or the service provider can receive payment from the sale of advertising content to one or more third parties.

In still additional embodiments, the invention provides a computer-implemented method, via a network. In this case, a computer infrastructure, such as computer system 12 (FIG. 1), can be provided and one or more systems for performing the processes of the invention can be obtained (e.g., created, purchased, used, modified, etc.) and deployed to the computer infrastructure. To this extent, the deployment of a system can comprise one or more of: (1) installing program code on a computing device, such as computer system 12 (as shown in FIG. 1), from a computer-readable medium; (2) adding one or more computing devices to the computer infrastructure; and (3) incorporating and/or modifying one or more existing systems of the computer infrastructure to enable the computer infrastructure to perform the processes of the invention.

The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein. 

What is claimed is:
 1. A method, comprising: obtaining, by a computer device, ball lie data; determining, by the computer device, an optimal grip position for a golf club based on the ball lie data and historical shot data of a user; and transmitting, by the computer device, data defining the optimal grip position to a smart grip attached to a shaft of the golf club.
 2. The method of claim 1, wherein the data defining the optimal grip position defines a subset of an array of visual indicators to selectively activate in the smart grip.
 3. The method of claim 1, wherein the ball lie data comprises at least one from the group consisting of: ball location, distance from the ball location to a green, ball lie angle, and ball lie surface.
 4. The method of claim 3, wherein the obtaining the ball lie data is performed automatically by a location determining module and a mapping module of the computer device.
 5. The method of claim 4, further comprising: presenting the automatically determined ball lie data to the user via a user interface of the computer device; and accepting user input via the user interface to accept or change the ball lie data.
 6. The method of claim 3, wherein the obtaining the ball lie data comprises receiving user input via a user interface of the computer device.
 7. The method of claim 1, wherein the historical shot data of the user and historical shot data of at least one other user is stored in a database in the computer device.
 8. The method of claim 7, further comprising: determining a result of a golf shot; receiving data defining a detected grip position from the smart grip; and storing the ball lie data, the data defining the detected grip position, and data defining the result of the golf shot as an entry in the database.
 9. The method of claim 1, further comprising the computer device determining the golf club based on the ball lie data and the historical shot data of the user.
 10. The method of claim 1, wherein the golf club is manually selected by the user prior to the determining the optimal grip position for the golf club.
 11. The method of claim 10, further comprising receiving, by the computer device, input of a user intent, wherein the determining the optimal grip position for the golf club is based on: the user intent, the golf club selected by the user, the ball lie data, and the historical shot data of the user.
 12. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computer device to cause the computing device to perform the following steps for a plurality of golf shots by a user: determine ball lie data of a respective one of the plurality of golf shots; determine a golf club used for the respective one of the plurality of golf shots; determine a grip position of a user's hands on a grip of the golf club during the respective one of the plurality of golf shots; determine a result of the respective one of the plurality of golf shots; and save an entry in a database for the respective one of the plurality of golf shots, wherein the entry contains data defining the ball lie data, the golf club, the grip position, and the result.
 13. The computer program product of claim 12, wherein the program instructions cause the computing device to: receive user input of a selected club and an intent of a current golf shot; determine ball lie data of the current golf shot; determine an optimal grip position based on the selected club, the intent, the ball lie data, and the database; and transmit data defining the optimal grip position to a smart grip on the selected club, wherein the data defining the optimal grip position defines a subset of an array of visual indicators to selectively activate in the smart grip.
 14. The computer program product of claim 12, wherein the program instructions cause the computing device to: determine ball lie data of a current golf shot; determine an optimal club and an optimal grip position based on the ball lie data and the database; and transmit data defining the optimal grip position to a smart grip on the optimal club, wherein the data defining the optimal grip position defines a subset of an array of visual indicators to selectively activate in the smart grip.
 15. A smart grip system, comprising: a grip material structured and arranged to fit on an end of a shaft of a golf club; a processor embedded in the grip material; an array of visual indicators connected to the grip material and operatively connected to the processor; an array of pressure sensors connected to the grip material and operatively connected to the processor; wherein the processor is configured to selectively activate a subset of the array of visual indicators to visually indicate a suggested grip position for a user's hands on the grip material.
 16. The system of claim 15, wherein the visual indicators comprise light emitting diodes that are underneath the grip material or embedded in the grip material.
 17. The system of claim 15, further comprising a radio communication antenna connected to the processor.
 18. The system of claim 17, wherein: the processor is configured to receive data defining the subset of the array of visual indicators to activate; and the data is received by wireless communication via the radio communication antenna connected to the processor.
 19. The system of claim 15, wherein: the subset of the array of visual indicators is a first subset; the processor is configured to selectively activate a second subset of the array of visual indicators to visually indicate a second grip position for the user's hands on the grip material; and the first subset is different than the second subset.
 20. The system of claim 15, wherein the pressure sensors are configured to detect an actual grip position of the user's hands on the grip material. 